import numpy as np
from sklearn import datasets
from sklearn.linear_model import LogisticRegression
from sklearn.preprocessing import scale

iris = datasets.load_iris()
print(iris.keys())
X = scale(iris.data[:, 3:])
# print(X)
# 对鸢尾花（Iris）数据集的目标标签进行二值化处理
# True 表示该样本是第2类（维吉尼亚鸢尾）False 表示该样本是其他类（0或1）.astype(np.int_)：将布尔值强制转换为整数：
y = (iris['target'] == 2).astype(np.int_)
# print(y)

lr = LogisticRegression(max_iter=10000, solver='sag')
lr.fit(X, y)
print(lr.coef_)

X_new = np.linspace(0, 3, 1000).reshape(-1, 1)

# predict_proba(X_new) 是 scikit-learn 中逻辑回归模型 (LogisticRegression) 的一个重要方法，用于预测样本属于各个类别的概率
# 返回输入样本 X_new 属于每个类别的概率（概率值范围 [0, 1]）
p_proba = lr.predict_proba(X_new)
print(p_proba)
p = lr.predict(X_new)
print(p)
print(p.size)

